Application software can vary in responsiveness to user inputs depending on numerous factors, including whether the application is relatively resource-intensive and whether available hardware resources of the device running the application are sufficient to meet the resource demands of the application. For example, startup latency for some mobile device applications is relatively long, on the order of 10-15 seconds. This problem is particularly acute when older hardware is used to execute newer applications, because newer applications tend to demand more resources than older applications.
One general approach to reducing application startup latency is to load applications in memory or even begin executing the applications before users actually invoke the applications. However, mobile devices tend to be relatively resource-constrained, and it is not always acceptable to allocate memory or processor resources to applications that are not currently in use. Indeed, in some cases, this approach can unnecessarily drain battery power by loading unnecessary data and/or executing unnecessary instructions.